package com.ruoyi.dynamic.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.dynamic.model.pojo.entity.RoomWish;
import com.ruoyi.dynamic.model.pojo.request.app.AppRoomUserSearchRequest;
import com.ruoyi.dynamic.model.pojo.request.app.AppRoomWishAddOrEditRequest;
import com.ruoyi.dynamic.model.pojo.request.app.AppRoomWishCloseRequest;
import com.ruoyi.dynamic.model.pojo.result.app.AppRoomWishGiveInfoResult;
import com.ruoyi.dynamic.model.pojo.result.app.AppRoomWishResult;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 房间心愿单 服务类
 * </p>
 *
 * @author ${author}
 * @since 2024-12-13
 */
public interface IRoomWishService extends IService<RoomWish> {

    /**
     * 心愿单列表
     */
    List<AppRoomWishResult> listPage(Long userId, AppRoomUserSearchRequest request);

    /**
     * 添加编辑心愿单
     */
    boolean addOrEdit(AppRoomWishAddOrEditRequest request, Long userId);

    /**
     * 开启心愿单
     */
    boolean open(AppRoomWishCloseRequest request, Long userId);


    /**
     * 获取主播的心愿单列表
     */
    List<RoomWish> listByUserId(Long userId);

    /**
     * 关闭心愿单
     */
    boolean stop(AppRoomWishCloseRequest request, Long userId);

    /**
     * 赠送详情
     */
    AppRoomWishGiveInfoResult giveInfo(AppRoomWishCloseRequest request, Long userId);

    /**
     * 换一换
     */
    boolean exchange(AppRoomWishCloseRequest request, Long userId);


    /**
     * 判断送出的这个礼物是不是在心愿单
     */
    void isRoomWish(Long giftId, Long userId, Long roomId);

    /**
     * 删除心愿
     */
    void delWish(Long id);

}
